export default {
  // 开启命名空间
  namespaced:true,
  
  // state数据
  state:()=>({
    // s收货地址
    address:JSON.parse(uni.getStorageSync('address') || '{}'),
    // 登录之后的token
    token:uni.getStorageSync('token') || '',
    // 用户的基本信息
    userinfo:JSON.parse(uni.getStorageSync('userinfo') || '{}'),
    
    // 重定向的object对象{openType，from}
    redirectInfo:null
  }),
  
  // 方法
  mutations:{
    // 更新收货地址
    updataAddresss(state,address){
      state.address = address
      // 通过this.commit方法，调用m_user模块的saveAddressToStorage将数据持久化存储到本地
      this.commit('m_user/saveAddressToStorage')
    },
    
    // 将数据持久化存储到本地
    saveAddressToStorage(state){
      uni.setStorageSync('address',JSON.stringify(state.address))
    },
    
    // 更新用户的基本信息
    updataUserInfo(state,userinfo){
      state.userinfo = userinfo
      // 通过this.commit()方法，调用m_user模块下的saveUserInfoToStorage方法，将userinfo对象持久化存储到本地
      this.commit('m_user/saveUserInfoToStorage')
    },
    // 将userinfo持久化存储到本地
    saveUserInfoToStorage(state){
      uni.setStorageSync('userinfo',JSON.stringify(state.userinfo))
    },
    
    // 更新token字符串
    updataToken(state,token){
      state.token = token 
      // 通过this.commit()方法，调用m_user模块下的saveTokenToStorage方法，将tokn字符串持久存储到本地
      this.commit('m_user/saveTokenToStorage')
    },
    // 将token字符串持久化存储到本地
    saveTokenToStorage(state){
      uni.setStorageSync('token',state.token)
    },
    
    // 重定向的方法
    updataRedirectInfo(state,info){
      state.redirectInfo = info
    }
  },
  
  // 数据加工
  getters:{
    addStr(state){
      if(!state.address.provinceName) return ''
      return state.address.provinceName+state.address.cityName+state.address.countyName+state.address.detailInfo
    },
  }
}